home *** CD-ROM | disk | FTP | other *** search
/ Aminet 43 / Aminet 43 (2001)(GTI - Schatztruhe)[!][Jun 2001].iso / Aminet / comm / tcp / Amster-source.lha / Amster_Install / Source / panel.c < prev    next >
C/C++ Source or Header  |  2001-03-11  |  9KB  |  269 lines

  1. /*
  2. ** Amster - Panel
  3. ** Copyright © 1999-2000 by Gürer Özen
  4. **
  5. ** This program is free software; you can redistribute it and/or modify
  6. ** it under the terms of the GNU General Public License as published by
  7. ** the Free Software Foundation; either version 2 of the License, or
  8. ** (at your option) any later version.
  9. **
  10. ** This program is distributed in the hope that it will be useful,
  11. ** but WITHOUT ANY WARRANTY; without even the implied warranty of
  12. ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  13. ** GNU General Public License for more details.
  14. **
  15. ** You should have received a copy of the GNU General Public License
  16. ** along with this program; if not, write to the Free Software
  17. ** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  18. */
  19.  
  20. #include "amster.h"
  21.  
  22. #include "amster_Cat.h"
  23.  
  24. #include "pix/logo.h"
  25. #include "pix/infoicon.h"
  26. #include "pix/msgicon.h"
  27. #include "pix/chaticon.h"
  28. #include "pix/dlicon.h"
  29. #include "pix/shareicon.h"
  30. #include "pix/prficon.h"
  31.  
  32. ULONG panel_new(struct IClass *cl, Object *obj, struct opSet *msg);
  33. extern struct Hook handleHook;
  34.  
  35.  
  36. MUI_DISPATCH(panel_dispatch)
  37. {
  38.     u_long tmp;
  39.     struct paneldata *data;
  40.  
  41.     switch(msg->MethodID) {
  42.         case OM_NEW:
  43.             return(panel_new(cl,obj,(APTR)msg));
  44.         case PANEL_OPENABOUT:
  45.             data = INST_DATA(cl, obj);
  46.             set(data->logo,MUIA_Selected,FALSE);
  47.             set(gui->awin,MUIA_Window_Open,TRUE);
  48.             return NULL;
  49.         case PANEL_OPENDEBUG:
  50.             data = INST_DATA(cl, obj);
  51.             GetAttr(MUIA_Selected,data->infoicon,&tmp);
  52.             if(tmp!=TRUE) set(data->infoicon,MUIA_Selected,TRUE);
  53.             set(gui->iwin,MUIA_Window_Open,TRUE);
  54.             return NULL;
  55.         case PANEL_CLOSEDEBUG:
  56.             data = INST_DATA(cl, obj);
  57.             GetAttr(MUIA_Selected,data->infoicon,&tmp);
  58.             if(tmp!=FALSE) set(data->infoicon,MUIA_Selected,FALSE);
  59.             set(gui->iwin,MUIA_Window_Open,FALSE);
  60.             return NULL;
  61.         case PANEL_OPENDL:
  62.             data = INST_DATA(cl, obj);
  63.             GetAttr(MUIA_Selected,data->dlicon,&tmp);
  64.             if(tmp!=TRUE) set(data->dlicon,MUIA_Selected,TRUE);
  65.             set(gui->dwin,MUIA_Window_Open,TRUE);
  66.             return NULL;
  67.         case PANEL_CLOSEDL:
  68.             data = INST_DATA(cl, obj);
  69.             GetAttr(MUIA_Selected,data->dlicon,&tmp);
  70.             if(tmp!=FALSE) set(data->dlicon,MUIA_Selected,FALSE);
  71.             set(gui->dwin,MUIA_Window_Open,FALSE);
  72.             return NULL;
  73.         case PANEL_OPENSHARE:
  74.             data = INST_DATA(cl, obj);
  75.             GetAttr(MUIA_Selected,data->shareicon,&tmp);
  76.             if(tmp!=TRUE) set(data->shareicon,MUIA_Selected,TRUE);
  77.             DoMethod(gui->shwin,SHARE_OPEN);
  78.             return NULL;
  79.         case PANEL_CLOSESHARE:
  80.             data = INST_DATA(cl, obj);
  81.             GetAttr(MUIA_Selected,data->shareicon,&tmp);
  82.             if(tmp!=FALSE) set(data->shareicon,MUIA_Selected,FALSE);
  83.             DoMethod(gui->shwin,SHARE_CLOSE);
  84.             return NULL;
  85.         case PANEL_OPENPRF:
  86.             data = INST_DATA(cl, obj);
  87.             GetAttr(MUIA_Selected,data->prficon,&tmp);
  88.             if(tmp!=TRUE) set(data->prficon,MUIA_Selected,TRUE);
  89.             DoMethod(gui->swin,PRF_OPEN);
  90.             return NULL;
  91.         case PANEL_CLOSEPRF:
  92.             data = INST_DATA(cl, obj);
  93.             GetAttr(MUIA_Selected,data->prficon,&tmp);
  94.             if (tmp!=FALSE) set(data->prficon,MUIA_Selected,FALSE);
  95.             DoMethod(gui->swin, (ULONG)(((muimsg)msg)->arg1));
  96.             return NULL;
  97.         case PANEL_OPENMSG:
  98.             DoMethod(gui->mwin, MSG_OPEN);
  99.             return NULL;
  100.         case PANEL_NEWCHAT:
  101.             {
  102.             Object *win;
  103.             win = NewObject(gui->chat_mcc->mcc_Class,NULL,TAG_DONE);
  104.             if (!win) return(0);
  105.             DoMethod(gui->app, OM_ADDMEMBER, win);
  106.             set(win, MUIA_Window_Open, TRUE);
  107.             return NULL;
  108.             }
  109.         case PANEL_DISPOSECHAT:
  110.             {
  111.             Object *win;
  112.             win = (Object *)(((muimsg)msg)->arg1);
  113.             if (!win) return(0);
  114.             set(win, MUIA_Window_Open, FALSE);
  115.             DoMethod(gui->app, OM_REMMEMBER, win);
  116.             MUI_DisposeObject(win);
  117.             return NULL;
  118.             }
  119.  
  120.     }
  121.     return DoSuperMethodA(cl, obj, msg);
  122. }
  123.  
  124.  
  125. ULONG panel_new(struct IClass *cl, Object *obj, struct opSet *msg)
  126. {
  127.     struct paneldata *data;
  128.     Object *logo,*infoicon,*msgicon,*chaticon,*dlicon,*shareicon,*prficon;
  129.  
  130.     if (obj = (Object *)DoSuperNew(cl,obj,
  131.         Child, VGroup,
  132.             Child, logo = BodychunkObject,
  133.                 MUIA_FixWidth, LOGO_WIDTH,
  134.                 MUIA_FixHeight, LOGO_HEIGHT,
  135.                 MUIA_Bitmap_Width, LOGO_WIDTH,
  136.                 MUIA_Bitmap_Height, LOGO_HEIGHT,
  137.                 MUIA_Bodychunk_Depth, LOGO_DEPTH,
  138.                 MUIA_Bodychunk_Body, (ULONG *)logo_body,
  139.                 MUIA_Bodychunk_Compression, LOGO_COMPRESSION,
  140.                 MUIA_Bodychunk_Masking, LOGO_MASKING,
  141.                 MUIA_Bitmap_SourceColors, (ULONG *)logo_colors,
  142.                 MUIA_Bitmap_Transparent, 0,
  143.                 MUIA_InputMode, MUIV_InputMode_Immediate,
  144.                 MUIA_ShowSelState, FALSE,
  145.             End,
  146.             Child, VSpace(0),
  147.             Child, infoicon = BodychunkObject,
  148.                 ImageButtonFrame,
  149.                 MUIA_Background, MUII_ButtonBack,
  150.                 MUIA_FixWidth, INFOICON_WIDTH,
  151.                 MUIA_FixHeight, INFOICON_HEIGHT,
  152.                 MUIA_Bitmap_Width, INFOICON_WIDTH,
  153.                 MUIA_Bitmap_Height, INFOICON_HEIGHT,
  154.                 MUIA_Bodychunk_Depth, INFOICON_DEPTH,
  155.                 MUIA_Bodychunk_Body, (ULONG *)infoicon_body,
  156.                 MUIA_Bodychunk_Compression, INFOICON_COMPRESSION,
  157.                 MUIA_Bodychunk_Masking, INFOICON_MASKING,
  158.                 MUIA_Bitmap_SourceColors, (ULONG *)infoicon_colors,
  159.                 MUIA_Bitmap_Transparent, 0,
  160.                 MUIA_InputMode, MUIV_InputMode_Toggle,
  161.             End,
  162.             Child, VSpace(0),
  163.             Child, msgicon = BodychunkObject,
  164.                 ImageButtonFrame,
  165.                 MUIA_Background, MUII_ButtonBack,
  166.                 MUIA_FixWidth, MSGICON_WIDTH,
  167.                 MUIA_FixHeight, MSGICON_HEIGHT,
  168.                 MUIA_Bitmap_Width, MSGICON_WIDTH,
  169.                 MUIA_Bitmap_Height, MSGICON_HEIGHT,
  170.                 MUIA_Bodychunk_Depth, MSGICON_DEPTH,
  171.                 MUIA_Bodychunk_Body, (ULONG *)msgicon_body,
  172.                 MUIA_Bodychunk_Compression, MSGICON_COMPRESSION,
  173.                 MUIA_Bodychunk_Masking, MSGICON_MASKING,
  174.                 MUIA_Bitmap_SourceColors, (ULONG *)msgicon_colors,
  175.                 MUIA_Bitmap_Transparent, 0,
  176.                 MUIA_InputMode, MUIV_InputMode_RelVerify,
  177.             End,
  178.             Child, chaticon = BodychunkObject,
  179.                 ImageButtonFrame,
  180.                 MUIA_Background, MUII_ButtonBack,
  181.                 MUIA_FixWidth, CHATICON_WIDTH,
  182.                 MUIA_FixHeight, CHATICON_HEIGHT,
  183.                 MUIA_Bitmap_Width, CHATICON_WIDTH,
  184.                 MUIA_Bitmap_Height, CHATICON_HEIGHT,
  185.                 MUIA_Bodychunk_Depth, CHATICON_DEPTH,
  186.                 MUIA_Bodychunk_Body, (ULONG *)chaticon_body,
  187.                 MUIA_Bodychunk_Compression, CHATICON_COMPRESSION,
  188.                 MUIA_Bodychunk_Masking, CHATICON_MASKING,
  189.                 MUIA_Bitmap_SourceColors, (ULONG *)chaticon_colors,
  190.                 MUIA_Bitmap_Transparent, 0,
  191.                 MUIA_InputMode, MUIV_InputMode_RelVerify,
  192.             End,
  193.             Child, VSpace(0),
  194.             Child, dlicon = BodychunkObject,
  195.                 ImageButtonFrame,
  196.                 MUIA_Background, MUII_ButtonBack,
  197.                 MUIA_FixWidth, DLICON_WIDTH,
  198.                 MUIA_FixHeight, DLICON_HEIGHT,
  199.                 MUIA_Bitmap_Width, DLICON_WIDTH,
  200.                 MUIA_Bitmap_Height, DLICON_HEIGHT,
  201.                 MUIA_Bodychunk_Depth, DLICON_DEPTH,
  202.                 MUIA_Bodychunk_Body, (ULONG *)dlicon_body,
  203.                 MUIA_Bodychunk_Compression, DLICON_COMPRESSION,
  204.                 MUIA_Bodychunk_Masking, DLICON_MASKING,
  205.                 MUIA_Bitmap_SourceColors, (ULONG *)dlicon_colors,
  206.                 MUIA_Bitmap_Transparent, 0,
  207.                 MUIA_InputMode, MUIV_InputMode_Toggle,
  208.             End,
  209.             Child, shareicon = BodychunkObject,
  210.                 ImageButtonFrame,
  211.                 MUIA_Background, MUII_ButtonBack,
  212.                 MUIA_FixWidth, SHAREICON_WIDTH,
  213.                 MUIA_FixHeight, SHAREICON_HEIGHT,
  214.                 MUIA_Bitmap_Width, SHAREICON_WIDTH,
  215.                 MUIA_Bitmap_Height, SHAREICON_HEIGHT,
  216.                 MUIA_Bodychunk_Depth, SHAREICON_DEPTH,
  217.                 MUIA_Bodychunk_Body, (ULONG *)shareicon_body,
  218.                 MUIA_Bodychunk_Compression, SHAREICON_COMPRESSION,
  219.                 MUIA_Bodychunk_Masking, SHAREICON_MASKING,
  220.                 MUIA_Bitmap_SourceColors, (ULONG *)shareicon_colors,
  221.                 MUIA_Bitmap_Transparent, 0,
  222.                 MUIA_InputMode, MUIV_InputMode_Toggle,
  223.             End,
  224.             Child, VSpace(0),
  225.             Child, prficon = BodychunkObject,
  226.                 ImageButtonFrame,
  227.                 MUIA_Background, MUII_ButtonBack,
  228.                 MUIA_FixWidth, PRFICON_WIDTH,
  229.                 MUIA_FixHeight, PRFICON_HEIGHT,
  230.                 MUIA_Bitmap_Width, PRFICON_WIDTH,
  231.                 MUIA_Bitmap_Height, PRFICON_HEIGHT,
  232.                 MUIA_Bodychunk_Depth, PRFICON_DEPTH,
  233.                 MUIA_Bodychunk_Body, (ULONG *)prficon_body,
  234.                 MUIA_Bodychunk_Compression, PRFICON_COMPRESSION,
  235.                 MUIA_Bodychunk_Masking, PRFICON_MASKING,
  236.                 MUIA_Bitmap_SourceColors, (ULONG *)prficon_colors,
  237.                 MUIA_Bitmap_Transparent, 0,
  238.                 MUIA_InputMode, MUIV_InputMode_Toggle,
  239.             End,
  240.             Child, VSpace(0),
  241.         End,
  242.         TAG_MORE, msg->ops_AttrList))
  243.     {
  244.         data = INST_DATA(cl,obj);
  245.         data->logo = logo;
  246.         data->infoicon = infoicon;
  247.         data->dlicon = dlicon;
  248.         data->shareicon = shareicon;
  249.         data->prficon = prficon;
  250.  
  251.         DoMethod(logo,MUIM_Notify,MUIA_Selected,TRUE,obj,1,PANEL_OPENABOUT);
  252.  
  253.         DoMethod(infoicon,MUIM_Notify,MUIA_Selected,TRUE,obj,1,PANEL_OPENDEBUG);
  254.         DoMethod(infoicon,MUIM_Notify,MUIA_Selected,FALSE,obj,1,PANEL_CLOSEDEBUG);
  255.         DoMethod(dlicon,MUIM_Notify,MUIA_Selected,TRUE,obj,1,PANEL_OPENDL);
  256.         DoMethod(dlicon,MUIM_Notify,MUIA_Selected,FALSE,obj,1,PANEL_CLOSEDL);
  257.         DoMethod(shareicon,MUIM_Notify,MUIA_Selected,TRUE,obj,1,PANEL_OPENSHARE);
  258.         DoMethod(shareicon,MUIM_Notify,MUIA_Selected,FALSE,obj,1,PANEL_CLOSESHARE);
  259.         DoMethod(prficon,MUIM_Notify,MUIA_Selected,TRUE,obj,1,PANEL_OPENPRF);
  260.         DoMethod(prficon,MUIM_Notify,MUIA_Selected,FALSE,obj,2,PANEL_CLOSEPRF,PRF_CANCEL);
  261.  
  262.         DoMethod(msgicon,MUIM_Notify,MUIA_Pressed,FALSE,obj,1,PANEL_OPENMSG);
  263.         DoMethod(chaticon,MUIM_Notify,MUIA_Pressed,FALSE,obj,1,PANEL_NEWCHAT);
  264.  
  265.         return((ULONG)obj);
  266.     }
  267.     return(0);
  268. }
  269.